맨위로가기

비선형 계획법

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

비선형 계획법은 하나 이상의 함수가 비선형인 최적화 문제로, 주어진 제약 조건 하에서 목적 함수를 최소화하거나 최대화하는 해를 찾는 수학적 방법이다. 이 문제는 실현 가능성, 즉 제약 조건을 만족하는 해의 존재 여부에 따라 실현 가능한 문제, 실현 불가능한 문제, 무제한 문제로 분류된다. 비선형 계획법은 볼록 최적화, 이차 계획법, 분수 계획법과 같은 특수한 경우에 전문화된 해법을 가지며, KKT 조건을 통해 해의 최적성을 판단하고, 수치적 방법, 분기 한정법 등을 사용하여 문제를 해결한다. 이 기법은 운송 비용 계산, 데이터 분석 등 다양한 실제 문제에 적용된다.

2. 정의 및 해법

비선형 계획법은 주어진 제약 조건 하에서 목적 함수를 최적화하는 문제이다. 이때 목적 함수나 제약 조건 중 하나 이상이 비선형 함수이다.

제약 조건 집합에 따라 다음과 같은 경우가 있을 수 있다.


  • 실현 가능한 문제: 모든 제약 조건을 만족하는 해가 적어도 하나 존재하는 경우이다.
  • 실현 불가능한 문제: 모든 제약 조건을 동시에 만족하는 해가 존재하지 않는 경우이다. 즉, 제약 조건이 서로 모순된다.
  • 무제한 문제: 목적 함수 값을 임의의 값보다 더 좋게 만들 수 있는 실현 가능한 해가 존재하는 경우이다. 이 경우 최적해는 존재하지 않는다.


대부분의 실제 응용 문제는 실현 가능한 문제에 해당하며, 실현 불가능하거나 무제한인 문제는 모델의 실패로 간주된다.

몇 가지 특수한 경우에 대한 해법은 다음과 같다.

  • 목적 함수가 오목 함수(최대화 문제) 또는 볼록 함수(최소화 문제)이고 제약 조건 집합이 볼록 집합인 경우, 볼록 최적화 방법을 사용할 수 있다.
  • 목적 함수가 이차 함수이고 제약 조건이 선형인 경우, 이차 계획법 기술을 사용한다.
  • 목적 함수가 오목 함수와 볼록 함수의 비율이고(최대화의 경우) 제약 조건이 볼록인 경우, 분수 계획법 기술을 사용하여 볼록 최적화 문제로 변환할 수 있다.


일반적으로 비선형 계획법 문제는 다음과 같이 간단하게 표현할 수 있다.

:\max_{x \in X}f(x)

또는

:\min_{x \in X}f(x)

여기서

:f: R^n \to R

:X \subseteq R^n

2. 1. 정의

''n'', ''m'', ''p''를 양의 정수라고 하자. ''X''를 ''Rn''의 부분집합이라고 하고, ''f'', ''gi'', ''hj''를 각 ''i'' ∈ {''1'', ..., ''m''} 및 각 ''j'' ∈ {''1'', ..., ''p''}에 대해 ''X''에서 정의된 실수 값 함수라고 하자. 단, ''f'', ''gi'', ''hj'' 중 적어도 하나는 비선형이다.

비선형 계획법 문제는 다음 형태의 최적화 문제이다.

:

\begin{align}

\text{최소화 } & f(x) \\

\text{제약 조건 } & g_i(x) \leq 0 \text{ for each } i \in \{1, \dotsc, m\} \\

& h_j(x) = 0 \text{ for each } j \in \{1, \dotsc, p\} \\

& x \in X.

\end{align}


2. 2. 해법

비선형 계획법 문제를 푸는 방법은 크게 해석적 방법과 수치적 방법으로 나눌 수 있다. 목적 함수가 오목 함수(최대화 문제) 또는 볼록 함수(최소화)이고 제약 집합이 볼록 집합인 경우, 해당 문제는 볼록 계획 문제라고 하며, 볼록 최적화 기법을 사용할 수 있다. 목적 함수 ''f''가 선형이고 제약 공간이 폴리토프인 경우, 해당 문제는 선형 계획법으로 풀 수 있다.

비볼록 계획 문제의 경우, 선형 계획법의 특수한 공식화를 사용하거나, 분기 한정법을 사용하여 문제를 볼록 계획 문제나 선형 계획 문제로 분할하여 풀 수 있다.[2]

2. 2. 1. 해석적 방법

미분가능성과 제약 조건이 주어진 경우, 카루쉬-쿤-터커(KKT) 조건은 해가 최적일 필요조건을 제공한다. 일부 함수가 미분 불가능하다면, 서브미분 형태의 카루쉬-쿤-터커 (KKT) 조건을 사용할 수 있다.[1]

볼록성이 만족되는 경우, KKT 조건은 전역 최적해에 대한 충분조건이 된다. 볼록성이 없는 경우, 이 조건은 지역 최적해에 대해서만 충분하다. 경우에 따라 지역 최적해의 수가 적을 수 있으며, 이들을 모두 해석적으로 찾아내어 목적 함수 값이 가장 작은 해를 찾을 수 있다.[2]

2. 2. 2. 수치적 방법

대부분의 현실적인 경우, KKT 조건을 해석적으로 푸는 것은 매우 어렵기 때문에, 수치해석을 이용한 수치적 방법으로 문제를 해결한다. 이러한 방법들은 반복적이다. 초기 지점에서 시작하여, 어떤 갱신 규칙을 사용하여 최적점에 더 가까워질 것으로 예상되는 지점으로 진행한다. 갱신 규칙에는 세 가지 종류가 있다.[2]

  • 영차(Zero-order) 루틴 - 현재 지점에서 목적 함수와 제약 조건 함수의 값만 사용한다.
  • 일차(First-order) 루틴 - 이러한 함수들의 ''기울기'' 값도 사용한다.
  • 이차(Second-order) 루틴 - 이러한 함수들의 ''헤시안'' 값도 사용한다.


3차(Third-order) 루틴(및 그 이상)은 이론적으로는 가능하지만, 더 높은 계산 부하와 이론적 이점이 거의 없어 실제로는 사용되지 않는다.

분기 한정법은 문제를 여러 개의 하위 문제로 나누어 해결하는 방법이다. 각 하위 문제는 볼록 최적화 문제 또는 선형 근사를 통해 해결되며, 이를 통해 전체 문제의 최적해를 찾는다. 분할해 나가면, 어느 시점에서 원래 문제의 해가 되는 해를 얻을 수 있으며, 그들의 최소(또는 최대)가 근사 해법에서의 해와 일치한다. 이 해는 최적이지만, 반드시 유일하지는 않다. 이 알고리즘은 근사해와의 특정 허용 오차 내의 해를 얻었을 때 중단시킬 수도 있으며, 그러한 해를 "ε 최적(ε-optimal)"이라고 부른다. ε 최적으로 중단시키는 것은 일반적으로 유한 시간 내에 중단하는 것을 보장하는 데 필요하다. 대규모의 어려운 문제나 불확실성을 적절한 신뢰성 추정으로 개산할 수 있는 비용이나 값이 불확실한 문제에서 특히 유효하다.

3. 문제의 유형

비선형 계획법 문제는 문제의 특성에 따라 다양한 유형으로 분류되며, 그에 맞는 해법이 적용된다.

3. 1. 실현 가능성

모든 제약 조건을 만족하는 해가 적어도 하나 존재하는 문제를 실현 가능한 문제라고 한다. 반면 모든 제약 조건을 만족하는 해가 존재하지 않는 문제를 실현 불가능한 문제라고 하며, 이는 제약 조건이 서로 모순되기 때문이다. 무제한 문제는 목적 함수 값을 임의로 좋게 만들 수 있는 실현 가능한 문제로, 최적해가 존재하지 않는다.

대부분의 현실적인 응용 분야는 실현 가능한 문제를 다루며, 실현 불가능하거나 무제한인 문제는 기본 모델의 실패로 간주된다. 실현 불가능한 문제는 실현 가능성 위반의 합을 최소화하여 처리하기도 한다.

3. 2. 특수한 경우


  • 목적 함수가 오목 함수(최대화 문제) 또는 볼록 함수(최소화 문제)이고 제약 조건 집합이 볼록 집합인 경우, 이 문제는 볼록이라고 하며 대부분 볼록 최적화의 일반적인 방법을 사용할 수 있다.[1]
  • 목적 함수가 이차 함수이고 제약 조건이 선형인 경우, 이차 계획법 기술이 사용된다.[1]
  • 목적 함수가 오목 함수와 볼록 함수의 비율(최대화의 경우)이고 제약 조건이 볼록인 경우, 이 문제는 분수 계획법 기술을 사용하여 볼록 최적화 문제로 변환할 수 있다.[1]

4. 응용 분야

비선형 계획법은 다양한 실제 문제들을 해결하는 데 사용된다.

전형적인 비볼록 문제는 다양한 연결성과 용량 제약 조건에서 하나 이상의 규모의 경제를 나타내는 일련의 운송 방법 중에서 선택하여 운송 비용을 최적화하는 것이다. 예를 들어 석유 제품을 운송할 때 파이프라인, 철도 유조선, 도로 유조선, 강선 또는 연안 유조선을 선택하거나 조합하는 경우가 있다. 경제적 배치 크기로 인해 비용 함수는 부드러운 변화 외에 불연속성을 가질 수 있다.

실험 과학에서 일부 간단한 데이터 분석(예: 알려진 위치와 모양을 갖지만 크기가 알려지지 않은 피크의 합으로 스펙트럼을 맞추는 것)은 선형 방식으로 수행할 수 있지만, 일반적으로 이러한 문제 또한 비선형이다. 일반적으로 연구 중인 시스템에 가변 매개변수가 있고 실험 또는 실험 모델이 있는 이론적 모델이 있으며, 실험 또는 실험에도 알 수 없는 매개변수가 있을 수 있다. 수치적으로 최적의 적합성을 찾으려고 한다. 이 경우 최적의 적합성 자체뿐만 아니라 결과의 정밀도에 대한 척도를 원하는 경우가 많다.

5. 구현

다수의 비선형 계획법 해결사(Solver)가 존재하며, 다음은 오픈 소스 소프트웨어에 해당한다.


  • ALGLIB (C++, C#, Java, Python API)는 여러 가지 1차 및 무미분 비선형 계획법 해결사를 구현한다.
  • [https://nlopt.readthedocs.io/en/latest/ NLopt] (C/C++ 구현, Julia, Python, R, MATLAB/Octave를 포함한 다양한 인터페이스 포함)는 다양한 비선형 계획법 해결사를 포함한다.
  • SciPy (과학적 파이썬의 사실상 표준)는 scipy.optimize 해결사를 가지고 있으며, 여기에는 여러 가지 비선형 계획법 알고리즘(0차, 1차 및 2차)이 포함되어 있다.
  • IPOPT (C++ 구현, C, Fortran, Java, AMPL, R, Python 등을 포함한 다양한 인터페이스 포함)는 내부점 방법 해결사이다(0차, 선택적으로 1차 및 2차 도함수).

6. 예시

비선형 계획법의 몇 가지 예시를 들 수 있다.

(하위 섹션에서 2차원 및 3차원 예시를 더 자세히 다룬다.)

6. 1. 2차원 예시

다음 제약 조건하에서

:''x''1 ≥ 0

:''x''2 ≥ 0

:''x''12 + ''x''22 ≥ 1

:''x''12 + ''x''22 ≤ 2

다음 목적 함수를 최대화하는 간단한 문제(그림 참고)를 생각할 수 있다.

:''f''('''x''') = ''x''1 + ''x''2

여기서 '''x''' = (''x''1, ''x''2)이다.

6. 2. 3차원 예시

3차원 비선형 계획법 문제의 예시는 다음과 같은 제약 조건을 가진다.

:''x''12 − ''x''22 + ''x''32 ≤ 2

:''x''12 + ''x''22 + ''x''32 ≤ 10

최대화할 목적 함수는 다음과 같다.

:''f''('''x''') = ''x''1''x''2 + ''x''2''x''3

여기서 '''x''' = (''x''1, ''x''2, ''x''3)이다.

참조

[1] 서적 Nonlinear Optimization Princeton University Press
[2] 웹사이트 Optimization III: Convex Optimization http://www2.isye.gat[...] 2023-01-01
[3] 서적 Nonlinear Programing https://archive.org/[...] Athena Scientific



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com